01
CMake是什么
历史背景 · 嵌入式角色 · vs Makefile/IDE
概念对比
02
环境搭建
Win/Linux/macOS · 交叉工具链 · 验证安装
工具链入门
03
第一个CMake项目
CMakeLists.txt · project() · add_executable()
实战构建
04
CMake语法基础
注释 · 变量 · 列表 · 条件判断 · 循环
语法核心
05
变量与缓存
普通/缓存/环境变量 · set/unset · 作用域
变量缓存
06
生成器表达式
$<...> · 编译选项条件 · Debug/Release
表达式配置
07
目标与属性
add_library · target_include · link_libraries
目标属性
08
目录与子项目
add_subdirectory · 层级管理 · 子CMakeLists
组织模块
09
查找依赖包
find_package · FindXXX.cmake · Config/Module
依赖包管理
10
自定义查找模块
编写FindXXX · find_path/find_library
模块查找
11
编译选项与特性
target_compile_options · features · C++标准
编译标准
12
链接管理
静态/动态库 · target_link_options · 链接顺序
链接库
13
安装与打包
install() · CPack · deb/rpm/zip
部署打包
14
测试集成
enable_testing · add_test · CTest · Google Test
测试CTest
15
交叉编译基础
概念 · toolchain.cmake · CMAKE_SYSTEM_NAME
交叉编译嵌入式
16
编写工具链文件
指定编译器/架构 · sysroot · 常见坑点
工具链配置
17
嵌入式MCU实战(STM32)
项目结构 · 启动文件 · Flash/RAM配置
STM32MCU
18
嵌入式MCU实战(ESP32)
ESP-IDF集成 · 组件管理 · 分区表
ESP32物联网
19
嵌入式Linux项目实战
交叉编译应用 · 第三方库 · 文件系统布局
Linux交叉编译
20
多架构构建
x86/ARM/RISC-V · 条件编译 · 配置
多架构可移植
21
预编译与外部库
ExternalProject · FetchContent · 导入预编译库
外部库依赖
22
代码生成
configure_file · add_custom_command · 生成头文件
生成自动化
23
编译加速
ccache · 并行构建 · 预编译头文件
性能加速
24
IDE集成
VS Code · CLion · Eclipse · Keil MDK
IDE效率
25
持续集成(CI)
GitHub Actions · Jenkins · 自动化测试
CIDevOps
26
版本管理
Git版本号 · project()版本 · 版本头文件
版本管理
27
大型项目组织
模块化 · INTERFACE · ALIAS · 导出目标
架构模块
28
调试CMake
message() · --trace · CMakePresets · GraphViz
调试诊断
29
最佳实践
命名规范 · 最小权限 · 避免全局 · 文档化
规范风格
30
综合实战
传感器+通信+控制 · 完整嵌入式项目
项目综合